#pragma once

#include "GameControls.h"

class GameManager;
class MenuManager;

class GameController: public GameControls {
public:

	GameController();
	~GameController();

	// Game Controls
	virtual void Restart();
	virtual bool Save(const char* const filename);
	virtual bool Load(const char* const filename);

	virtual void Run() {}
	virtual void Quit() {}
	virtual void Simulate(const bool = false) {}
	virtual void EndSeason(const bool, STD::stringstream&) {}

	GameManager* GetGM() { return gm_; }
	MenuManager* GetMM() { return mm_; }

private:
	//copy disabled
	GameController(const GameController&);
	GameController& operator=(const GameController&);

	// model
	GameManager*	gm_;
	MenuManager*	mm_;
};
